home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib17.dsk / GREETER MAKER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  4KB  |  90 lines

  1. 10  REM  **********************
  2. 20  REM  *   GREETER  MAKER   *
  3. 30  REM  *   BY CHRIS GLENN   *
  4. 40  REM  * COPYRIGHT (C) 1983 *
  5. 50  REM  * BY MICROSPARC, INC *
  6. 60  REM  * LINCOLN, MA. 01773 *
  7. 70  REM  **********************
  8. 110  TEXT : HOME : INVERSE : PRINT  SPC( 13)"GREETER MAKER" SPC( 14): NORMAL 
  9. 120  GOTO 320
  10. 130  REM  DISPLAY NAMES
  11. 140  IF K = 21  THEN P = P +1: IF P >L%  THEN P = 1
  12. 150  IF K = 8  THEN P = P -1: IF P <1  THEN P = L%
  13. 160  POKE 34,9: POKE 35,9: HOME : POKE 34,2: POKE 35,24
  14. 170 JJ = (P -1) *PL: FOR X = 1 TO PL:J = JJ +X: IF J >C  THEN 190
  15. 180  INVERSE : PRINT  CHR$(64 +X);: NORMAL : PRINT " "N$(J): NEXT 
  16. 190 LL = 63 +X: RETURN 
  17. 200  REM  CENTERING
  18. 210  HTAB  FN T(C): PRINT T$;: RETURN 
  19. 220  REM  RWTS
  20. 230  POKE 789,2: GOTO 250
  21. 240  POKE 789,1
  22. 250  CALL 768: POKE 72,0: RETURN 
  23. 260  REM  KEYPRESS WAIT
  24. 270  WAIT  -RB,128: POKE  -16368,0:K =  PEEK( -RB): RETURN 
  25. 280  REM  SCREEN CLEARING
  26. 290  POKE 34,2: POKE 35,19: HOME : TEXT 
  27. 300  VTAB 21: CALL  -958: PRINT : RETURN 
  28. 310  REM  SETUP
  29. 320  CLEAR :INP$ = "":VS =  PEEK(105) + PEEK(106) *256
  30. 330  POKE VS +2,240: POKE VS +3,14: POKE VS +4,64
  31. 340  DATA  169,3,160,9,32,217,3,96,0
  32. 350  DATA  1,96,1,0,17,15,251,183,0,64,0,0,1,0,254,96,1
  33. 360  FOR X = 768 TO 793: READ Y: POKE X,Y: NEXT 
  34. 370  POKE 778, PEEK(47081): POKE 779, PEEK(47082):D$ =  STR$( PEEK(779))
  35. 380 RB = 16384:F1 = RB +11:F7 = RB +221: DIM N$(105),C(105)
  36. 390  DEF  FN T(C) = (41 - LEN(T$))/2:P = 1:PL = 10
  37. 400  POKE 34,2: FOR X = 1 TO 40:P$ = P$ +".": NEXT 
  38. 410 W$ = " - PLEASE WAIT":O$ = "<O> FOR OPTIONS":Q$ = "START"
  39. 420  REM  START
  40. 430 T$ = "INSERT DISK IN DRIVE " +D$: VTAB 10: GOSUB 210
  41. 440 T$ = "AND PRESS <RETURN> TO " +Q$: VTAB 12: GOSUB 210: PRINT : VTAB 16: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **"
  42. 450  VTAB 20: PRINT P$:T$ = O$: GOSUB 210: POKE 35,19
  43. 460  GOSUB 270: IF K = 79  THEN 880
  44. 470  IF K < >13  THEN 460
  45. 480  IF B  THEN  RETURN 
  46. 490  HOME :T$ = "LOADING" +W$: VTAB 22: GOSUB 210
  47. 500  REM  READ NAMES
  48. 510  FOR X = 15 TO 1  STEP  -1: POKE 782,X: GOSUB 250:ZZ =  -34
  49. 520  FOR Y = F1 TO F7  STEP 35:ZZ = ZZ +35
  50. 530 Z =  PEEK(Y +33): IF Z = 0  THEN 610
  51. 540 C = C +1: IF  PEEK(Y) = 255  THEN C = C -1: GOTO 600
  52. 550 Z =  PEEK(Y +2): IF Z >16  THEN Z = Z -128
  53. 560  IF Z >4  THEN C = C -1: GOTO 600
  54. 570 C(C) = 6: IF Z = 0  THEN C(C) = 20: GOTO 590
  55. 580  IF Z = 4  THEN C(C) = 52
  56. 590 N$(C) =  MID$ (INP$,ZZ,30)
  57. 600  NEXT : NEXT 
  58. 610 L% = C/PL: IF C >L%  THEN L% = L% +1
  59. 620  IF C/PL =  INT(C/PL)  THEN L% = L% -1
  60. 630  REM  CURRENT GREETER
  61. 640  POKE 781,1: POKE 782,9: GOSUB 250:G$ =  MID$ (INP$,104,30): GOSUB 300
  62. 650  VTAB 3: HTAB 1: PRINT "CURRENT GREETER:": PRINT : PRINT  SPC( 2)G$
  63. 660  REM  GET CHOICE
  64. 670  PRINT P$: PRINT "SELECT NEW GREETER:": GOSUB 160
  65. 680  GOSUB 300: IF L% = 1  THEN 700
  66. 690 T$ = "USE ARROWS TO SEE MORE FILES": GOSUB 210: PRINT : PRINT 
  67. 700 T$ = O$: GOSUB 210
  68. 710  GOSUB 270: IF L% >1  AND (K = 21  OR K = 8)  THEN  GOSUB 140: GOTO 710
  69. 720  IF K = 79  THEN 880
  70. 730  IF K <65  OR K >LL  THEN 710
  71. 740 F = PL *(P -1) +K -64:V = K -64 +9: IF N$(F) = G$  THEN 710
  72. 750  VTAB V: HTAB 3: INVERSE : PRINT N$(F): NORMAL 
  73. 760  REM  INSTALL
  74. 770  GOSUB 300:T$ = "INSTALL NEW GREETER? (Y/N)": GOSUB 210
  75. 780  GOSUB 270: IF K = 89  THEN 810
  76. 790  IF K < >78  THEN 780
  77. 800  VTAB V: HTAB 3: PRINT N$(F): GOTO 680
  78. 810  GOSUB 300:T$ = "INSTALLING" +W$: GOSUB 210
  79. 820  POKE 781,1: POKE 782,9: GOSUB 240
  80. 830 G$ = N$(F): FOR X = RB +117 TO RB +146
  81. 840  POKE X, ASC( MID$ (G$,X -RB -116,1)): NEXT : GOSUB 230
  82. 850  POKE 781,0: POKE 782,13: GOSUB 240: POKE RB +66,C(F): GOSUB 230
  83. 860  VTAB V: HTAB 3: PRINT G$: VTAB 5: PRINT  SPC( 2)G$: GOTO 680
  84. 870  REM  OPTIONS
  85. 880  GOSUB 290: PRINT "<S> TO START   <Q> TO QUIT   <B> TO BOOT"
  86. 890  GOSUB 270: IF K < >66  AND K < >81  AND K < >83  THEN 890
  87. 900  GOSUB 290: IF K = 83  THEN 320
  88. 910  IF K = 81  THEN T$ = "THANK YOU": GOSUB 210: PRINT : END 
  89. 920 Q$ = "BOOT":B = 1:D$ = "1": VTAB 14: GOSUB 430: GOSUB 290
  90. 930 T$ = "BOOTING" +W$: GOSUB 210: VTAB 3: PRINT : PRINT  CHR$(4)"PR#6"